Users can commonly access remote computers using different software like Virtual Network Computing (VNC) or Remote desktop Connection. They allow a user, for instance, an administrator to take control of the remote computer to perform some actions. Being able to display the remote computer screen is very useful to check the activities of that remote computer. If the user is waiting for an event involving a display modification, the window showing the remote computer must remain in the foreground for the user to be able to see the activities on that foreground window. If the window is hidden or overlapped by another application's window, or minimized, the display of that window is no longer visible and the result is that the user misses a modification or an event occurring on that window.
Video surveillance systems include motion detection and other features to recognize modification in the received video and detect a change based on a reference picture without human assistance. However, such software is in control of the incoming video flow, which is not the case with remote desktop kind of software. So, today, there is no way to define an area on any window and be notified when a change occurs in this specific zone even when the window is minimized or hidden by another window.
Desktop Window Manager (DWM, previously Desktop Compositing Engine or DCE) is a compositing window manager, introduced with Windows Vista™ operating system that enables the Windows Aero™ user interface. With DWM running, applications do not draw directly to the video memory, but to an off-screen buffers in system memory that are then composited together by DWM to render the final screen, a number of times per second. In that sense, it is similar to the Quartz compositor in Mac OS X™ or XGL™ based Composition Manager on Linux.
Because the compositor has access to the graphics of all applications, it easily allows effects that string together visuals from multiple applications, such as transparency. DWM uses DirectX to perform the function of compositing and rendering in the graphics processing unit (GPU), freeing the central processing unit (CPU) of the task of managing the rendering from the off-screen buffers to the display. However, it does not affect applications painting on the off-screen buffers; depending on the technologies used for that, it might still be CPU bound. DWM-agnostic rendering techniques like graphics device interface (GDI) are redirected to the buffers by rendering the user interface (UI) as bitmaps. DWM-aware rendering technologies like Windows Presentation Foundation (WPF) directly make the internal data structures available in a DWM-compatible format.
For rendering techniques that are not DWM-aware, output must be redirected to the DWM buffers. With Windows, either GDI or DirectX™ can be used for rendering. To make these two work with DWM, redirection techniques for both are provided with DWM. With GDI, which is the most used UI rendering technique in Microsoft Windows™, each application window is notified when it or a part of it comes in view and it is the job of the application to render itself. Without DWM, the rendering rasterizes the UI in a buffer in video memory, from where it is rendered to the screen. Under DWM, a buffer equal to the size of the window is allocated in system memory. GDI calls are redirected to write their outputs to this buffer, rather than the video memory. Another buffer is allocated in the video memory to represent the DirectX surface, which is used as the texture for the Window meshes. The system memory buffer is converted to the DirectX™ surface separately, and kept in sync. This round-about route is required as GDI cannot output directly in DirectX™ pixel format. The surface is read by the compositor and composite the desktop in video memory. Writing the output of GDI to system memory is not hardware accelerated, nor is conversion to DirectX™ surface. When a GDI window is minimized, by limitations of GDI, the buffer is no longer updated. So, DWM uses the last bitmap rendered to the buffer before the application was minimized.
Web contents change rapidly. Users desire to receive notifications, instead of being forced to visit pages again and again. Commercial software (e.g., Copernic Agent™ meta search engine) or other browser add-ons allow users to track changes in web page contents. When a change is detected, alerts are sent to the user.
U.S. Pat. No. 6,981,225 discloses a computer accessible medium storing instructions to provide a graphical user interface for a browser application for a display of a processor-based system, said interface including a navigation bar with a selectable subtract button image and a window to display a web page; in response to an initial selection of said subtract button image, causing said browser application to difference a cached version and a current version of a Web page and display the difference between said versions in said window; and in response to subsequent selection of said subtract button image, toggle between the display of said current version and the display of the difference between said versions in said window. This approach has drawbacks since the comparison process and decision are not automatic. The user needs to intervene and decide in the end.
U.S. Pat. No. 5,978,828 discloses an apparatus and method of providing notification of a content change of a web page. The method includes the steps of transmitting a request from a first electronic system to a second electronic system for a quotient value indicative of the content change, transmitting the quotient value from the second electronic system to the first electronic system, comparing the quotient value to a predetermined value to determine whether a threshold is triggered, and notifying the first electronic system of the content change if the threshold is triggered. This patent detects changes in web pages addresses; it does not expose how to solve the technical problem of comparisons between web pages.
Similarly, many methods make use of strings of character comparisons, which may not be sufficient. All these methods target web uses and they do not apply to managing the kind of alerts for program windows of any type.